home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Libris Britannia 4
/
science library(b).zip
/
science library(b)
/
COMMUNIC
/
H399.ZIP
/
ODY200SH.LZH
/
ODY200SH.DOC
< prev
next >
Wrap
Text File
|
1993-10-27
|
76KB
|
1,593 lines
ODYSSEY SHAREWARE VERSION
Release 2.00
27th Oct, 1993
The Odyssey program and this document are:
Copyright (C) 1991, Don Milne and Micropack Ltd.
See README.TXT file for registration details.
LIMITED LICENSE.
Notice that Odyssey Shareware Version, is Copyright (C) Don Milne and
Micropack Ltd. You do NOT own the software, you have a limited right to
use and evaluate the software for a period of 30 days. Use of Odyssey for
longer than 30 days requires that you register your copy.
You MAY NOT:
o Make changes to the software or documentation provided.
o Attempt to disassemble, or otherwise reverse engineer the software.
o Sell, Rent, Lease etc this software to others.
o Bundle it with other products which you sell.
You MAY:
o Evaluate the software for 30 days.
o Make backup or other copies of the software as required in order
to fully evaluate it.
o Give (not sell!) copies to friends, or upload to bulletin boards.
STATEMENT OF WARRANTY
This software is provided to you as is. Neither Shareware Publishing nor
the authors make any warranty that ODYSSEY SHAREWARE VERSION is suitable
for your application. Under no circumstances will Shareware Publishing or
the authors be held responsible for any loss or damage suffered by any user
arising out of the supply, use or operation of this software, whether or
not such such loss or damage be direct, consequential or otherwise.
This software is protected by United Kingdom Copyright Law and by
international treaty provision. You may use the software only under the
terms described in the license statement.
NOTE: FOR SPACE REASONS, THIS MANUAL IS DRASTICALLY ABBREVIATED, COMPARED
TO THE PRINTED VERSION. ON REGISTRATION YOU WILL OF COURSE RECEIVE A FULL,
PROFESSIONALLY TYPESET AND BOUND, 400+ PAGE MANUAL.
=============================================================================
=============================================================================
INTRODUCTION TO ODYSSEY (SHAREWARE VERSION)
-------------------------------------------
Odyssey is supplied as two files (or as one ZIP containing these two files)
:-
ODYxxxx.LZH
INSTALL.EXE
The first file is a compressed archive containing all the Odyssey programs,
data files and example scripts (the xxxx marks where a version number will
appear). The second file is the Odyssey installation program.
You will use INSTALL to unpack all the Odyssey files into an Odyssey
directory on your hard disk or second floppy. However, whatever target you
unpack Odyssey files onto, it must have at around 700K bytes available disk
space, which means that you cannot unpack the Odyssey files onto a 360K
disk. You can unpack the files onto a 3.5 inch floppy, or a high density
(AT format) 5.25 inch floppy, both of which have adequate capacities. If
you have problems installing Odyssey then you should contact Shareware
Publishing for support. A hard disk is strongly recommended for practical
use of Odyssey.
To install Odyssey you should follow these instructions:-
1. Insert the Odyssey master disk in your floppy drive, either
drive A or drive B, then close the drive door.
If you downloaded the software from a BBS and have it on your
hard disk then ignore this instruction, however if the files
came in archived form (.ZIP etc), then you do need to unpack
the archive using the correct unpacking tool.
2. If the files are on a floppy then log to that drive by typing the
drive letter, a colon, and then press the <enter> key. For example,
if you put the Odyssey disk in drive A, then you should type:-
A: <enter>
If you have done this correctly then the DOS prompt should change to
"A>" (or possibly "A:\>" on some systems).
If you have the install files on your hard disk then change to the
directory containing those files, e.g.:-
cd \comms\download
3. Run the Install program, by typing "INSTALL" (without the quotes),
then press the <enter> key.
4. When INSTALL runs, it asks you which directory it should use ie.,
where it should install the Odyssey files. If yours is a typical
system then the default of "C:\ODYSSEY" offered is probably
acceptable. You can however enter any directory name you wish,
provided that you enter it in the above format, remembering to
include both drive letter and directory path. If you wish to install
the files in the root directory of a disk (e.g. on drive B) then you
should enter "B:\". The target directory need not be the directory
containing the install files.
5. INSTALL will then proceed to unpack all of the Odyssey files, copying
them into the directory you named. If the named directory did not
already exist then INSTALL creates it. INSTALL will keep you informed
of its progress as it unpacks the files.
6. Finally, all the Odyssey files will be unpacked, and INSTALL will
proceed to ask you some basic questions about your hardware, which
you should answer. When this is done INSTALL will create an Odyssey
configuration file for you, and you are then ready to go. The
questions you are asked are discussed in the following section.
Now that Odyssey has been installed, you should store your Odyssey disk in
a safe place. This will be a backup in case your files are accidentally
deleted.
When Odyssey is properly installed you should examine the directory and
find a file called READ.ME. This file will contain any information on
changes to the software since the manual was printed.
INSTALL QUESTIONS AND ANSWERS.
Before answering any of the INSTALL questions, you should first make sure
that your modem is attached to your PC, and is powered up. If you have an
internal card modem then your modem is already connected and powered. Doing
this allows INSTALL to check for itself which port your modem is connected
to. However, this check may not work properly if you have an improper cable
with an external modem (see below). If you do not intend to use Odyssey
with a modem then you can ignore this instruction.
Possible modem detected on COM2
Use which Comm Port? (1,2): 2
This is the first question asked by INSTALL. You will be shown a list of
numbers in brackets, each number indicating the presence of a comm port. If
INSTALL thinks it has detected a modem on one of these ports then it will
offer that port number as the default choice. You can press <enter> to
accept the default, or you should type one of the valid comm port numbers
shown - no other number will be accepted. In the example prompt shown
above, two comm ports have been recognised, and a possible modem has been
detected on COM2. Odyssey itself can be configured to use comm ports which
have non-standard locations in memory, so you can always change the
selected port once you get through the basic installation procedure.
If you have a modem attached and powered, but INSTALL does not display a
default port number, then it is likely that DSR is not being held high,
either because the cable is incorrect, or because the modem is configured
wrongly (in the case of the DSR signal, this is not fatal, but may indicate
other configuration problems with your modem), or it may also mean that
your comm port is non-standard in some way, possibly by being at a non
standard address in memory.
Select your modem :
Odyssey displays this prompt immediately before displaying a menu of modem
which Odyssey has preset configurations for. You can scan up and down the
list of modems with the arrow keys, and if you see your modem you simply
highlight it and press the <Enter> key. If your modem is not in the list
then the best choice is "Hayes Generic".
| NOTE: Odyssey keeps modem configuration details in an editable ASCII text
| file called ODYSSEY.MDM - the pick list mentioned above is extracted from
| this file. If your modem was not present, and you are not a comms novice,
| then you might like to examine this file, and perhaps even create a new
| entry suitable for your own modem. If so, we would be grateful if you let
| us have the details, so that other users may benefit from your effort.
| Run the supplied MODEMCFG program to select a new modem outside the
| INSTALL program, or use the "eXchange modem" option in Odyssey's
| Setup/Modem menu.
Use Tone or Pulse dialing? [T/P] :
Enter T or P in answer to this question, depending on whether your exchange
allows tone dialing or not. If you do not know then P (for Pulse dialing)
usually works on public exchanges, even when they also support tones. If
your phone is a push button type, and you can hear tones as you dial, and
you get connections very quickly, then you almost certainly have tone
dialing. If you get no tones as you dial, and the phone whirs and clicks
for several seconds after you finish, then you probably still have pulse
dialing. In the latter case, you should perhaps consider asking your local
telephone company whether tone dialing is available, since the much faster
dial and connect sequence is more pleasant to use.
Should Odyssey use color? [Y/N] :
You will not see this question if you have a mono display adapter in your
PC. Odyssey can detect for itself whether your display adapter is mono or
color, however it cannot tell if you actually have a color monitor. Your
answer to this question will settle the issue. Enter Y if you can use
color, or N if not.
Now that these questions have been answered, Odyssey installation is
complete, and you may now run the program by typing "ODY" at the DOS prompt.
RUNNING ODYSSEY FOR THE FIRST TIME.
-----------------------------------
THE OPENING DISPLAY
You run Odyssey by typing "ODY" at the DOS prompt. You could also supply a
script name on the command line, and Odyssey would execute that script once
it starts up, however when running Odyssey for the first time you are
unlikely to have a script you wish to run.
When Odyssey runs, it briefly displays a logo on the screen while it
initialises the serial port, after which the screen clears and you are
ready to go! In the shareware version there is an additional screen
describing the license terms and telling you how to register. You must
press a key in order to clear this screen. When you have done so the logo
will disappear, leaving you looking at the main terminal screen, which is
mostly blank, except for the top and bottom lines of the display.
The top line of the display is the menu line, showing the main menu
options. This menu can be disabled in the setup section if you wish, and
this is sometimes necessary when the remote host with which you communicate
expects a 24 line terminal. To begin with however you will probably want to
keep this line present as an aide-memoire.
Also present on the menu line is a clock showing the time of day. This
clock uses DOS to get the time, so if DOS shows an incorrect time then so
will Odyssey.
The bottom line of the display is the status line, and this shows some
basic information about the current state of software and hardware, as
described in the following paragraphs.
The leftmost field shows the Odyssey version number, but when a script is
running, the script name is shown here instead.
To the right of the version number is a field which should currently be
blank, but which will contain the symbol "DCD" when you establish a
connection to a remote machine (DCD = Data Carrier Detected). If your
status line already shows DCD, and you are not currently connected to a
remote host, then either your cable or modem configuration is incorrect.
Some modems come configured by default with their DCD signal held
permanently high, which supposedly makes life easier for poor comms
software, but in reality causes as many problems as it solves, especially
for Odyssey, which needs the DCD signal to tell it when to start software
MNP, when a call has arrived during host mode, and several other things.
You should correct this problem as soon as possible if you have it.
If you do have the DCD problem, then you are also likely to have a related
problem, which is that many such modems also come configured to ignore the
DTR signal from the PC (DTR = Data Terminal Ready). The RS232 standard
requires that if the terminal or PC drops DTR for half a second, then the
modem should treat this is an instruction to hang up the line. If your
modem is configured to ignore DTR then you will not be able to hang up the
line from the PC keyboard (using ALT-H).
Both of the above problems are solved by changing your modem configuration,
either through switch settings, or using a modem command. You should
consult your modem manual for these commands. The exact wording will
naturally depend on the modem, but for the DCD problem you should look for
a command which instructs the modem that "DCD follows true state of
carrier", and for the DTR problem you should look for the command which
tells the modem that it should "interpret DTR according to CCITT/RS232/EIA
standards".
To the right of the DCD field is another field which should currently be
blank, but if you suffer the DCD fault then it may temporarily contain
"MNP5", because this is the field used to inform you when Odyssey is
maintaining an error corrected link (MNP = Microcom Network Protocol). The
digit at the end of this field tells you which class of MNP has been
established, and will always be either 2, 4 or 5 in the current version of
Odyssey.
To the right of the MNP field is the baud rate field, and displays the
current terminal speed and parity setting. For example "2400N" means 2400
bits per second, no parity. "1200E" would mean 1200 bits per second, even
parity.
To the right of the baud rate field is the "Log" field. Odyssey has the
ability to capture (log) any text which it receives to a text file, stored
on disk. When you run Odyssey for the first time this field will contain
"Log: No File", meaning that no log file is currently active. When you open
a log file (ALT-L) then the name you gave to the log file will be shown
here.
The next field shows the terminal emulation currently selected. Odyssey
defaults to a terminal type "TTY", which basically means a dumb ASCII
terminal. Other possible emulations include ANSI or VT100, but whichever
terminal is currently selected, its name is shown here. Terminal emulations
can be selected from the keyboard (via a menu), or by a script, or can be
attached to a dialing directory entry.
To the right of the terminal emulation field is the line quality field,
active only when you are on-line, and then only when software MNP is being
used. Since you are off-line at the moment this field should be blank. When
it is active the field will contain the symbol "LQ:xxx" where xxx is a
number which expresses the line quality as a percentage. By "line quality"
we mean how "noisy" the line is. In other comms packages noisy lines
manifest themselves as spurious characters on the terminal screen, however
this does not happen in Odyssey when MNP is being used, so the line quality
percentage is a valuable guide to the actual conditions. A line quality of
100% means a perfectly clean line, while a low percentage means a poor
connection, which may show itself as poor throughput and a jerky display.
If your line quality drops much below 90% then you would probably be best
advised to drop the connection and redial, hoping for better luck next time.
The last field on the line is an on-line clock (blank when you first run
Odyssey). When you make a connection to a remote machine this clock will
reset itself to zero, and thereafter will show elapsed hours, minutes and
seconds since the connection was established.
ONLINE HELP
If you press the F1 key now, you will be presented with a window containing
help information about the keys you can press from the terminal screen.
Generally speaking, you can press F1 anywhere within Odyssey, and you will
be presented with help information which is specific to the Odyssey section
which you happen to be using at that moment - this feature is often called
"Context Sensitive Help". These help windows are available in addition to
single line help, which appears on the bottom line of the display when you
invoke most Odyssey features. Single line help normally contains only the
briefest of guides to the keys which can be pressed at that point in the
program. For an explanation of those key presses you would consult the F1
help.
When you press F1 and a help window pops up, you then have the option of
pressing the F1 key again, which will display an index of help topics. This
index allows you to navigate your way through the help system, which is a
useful way of exploring many Odyssey features, as an alternative to using
the manual.
THE ESCAPE KEY
To leave the help system you simply press the <Esc> key. Generally
speaking, the <Esc> key is always used in Odyssey to abandon the current
activity, whether you are in a menu, an editor, the dialing directory, or
in fact anywhere else.
The <Esc> key is also sometimes used as a "cancel" key, depending on the
context. For example, if you are editing a string at the time the <Esc> key
is pressed, then Odyssey treats this as an instruction to cancel the edit,
and restores the original contents of the string. The <Esc> key also
cancels currently executing scripts, file transfers, and dial attempts. If
more than one of these activities is in progress when the you press <Esc>,
then only the most recently begun activity is cancelled.
THE MENUS
Odyssey has pulldown menus which you can access by typing the ALT key in
combination with the first letter of the menu name. For example to pull
down the "Setup" menu you hold down the ALT key and press 'S'.
Once a menu is displayed you can then use the left and right arrow keys to
move from menu to menu.
To select one of the options from a menu you simply move the highlight bar
to the option you want using the up and down arrow keys, and then press
<Enter>. If you do not understand the purpose of a menu option then simply
move the highlight bar to that option and press F1 for an explanation.
An alternative way of selecting a menu option is to type the first letter
of that menu option, if it is highlighted. If you do this then it is not
necessary to press the <Enter> key. This method is not available in all
menus, since it was not always possible for us to invent a sensible name
which resulted in a unique first letter for each option. In those menus
there are no highlighted first characters.
QUICK KEYS ("Hot" keys)
Beside some menu options are symbols such as "ALT-x", where x is a letter.
This tells you that ALT-x is an alternative keyboard command which, if
pressed, produces the same result as selecting that menu option. For
example, if you display the File menu you will notice that beside the "S -
Dos Shell" option is the symbol "ALT-O". So, in this example, ALT-O would
drop you into the DOS shell (if you don't know what that is, then don't
worry, these topics are discussed later in this manual when we come to
describing the menus in detail). Remember that ALT-O means that you hold
down the ALT key while you press the 'O' key (incidentally, if you just
tried it, you type EXIT and <Enter> to get back to Odyssey).
Most spare ALT-letter combinations have been assigned to major Odyssey
features, as alternatives to using the menus. These are often called "hot"
keys, and they allow fluent users to dispense with the menus for most
Odyssey tasks, except configuration (Setup). Generally speaking we have
tried to use the "obvious" ALT key for each function (for example, ALT-E to
edit), but naturally one or two of these mnemonics are somewhat contrived,
due to the shortage of available letters.
If you press F1 at the main terminal screen you will see a help window
which describes all of the available hot keys, and what they do.
THE FILE PICKER
If you press ALT-E now, you will enter the Odyssey message editor (this is
a Wordstar/Sidekick style editor which is fully described in a later
chapter). Once the edit window has popped up, press the F3 key - this is
the command to select a new file for editing. Instead of typing a filename
just type "*.*" and press <Enter>. Of course, you don't type the quotes.
What you see is the file picker window. Generally, throughout Odyssey, if
you are asked to enter a filename you also have the option of entering a
wildcard file name, and the file picker will pop up showing you a list of
files in the current directory which match the wildcard (if you don't know
about wildcards then you should consult your DOS manual).
Once the File Picker window is displayed, you can move from filename to
filename using the arrow keys, or you can press <Enter> to select a file,
or press <Esc> to leave the file picker without selecting a file. In the
latter case you will be back at the filename prompt again.
ODYSSEY CONFIGURATION
This section of the manual provides a brief guide to configuring Odyssey
for the first time, so that it works correctly with your equipment. It is
not a complete description of the Odyssey setup options, which are covered
in a later chapter (shareware users can consult the F1 help).
For most users, no Odyssey configuration will be necessary, the most
important items having been set up during installation. This will be true
if you have what we have regarded as typical equipment, i.e. a PC with a
hard disk, one or two comm ports, and a 2400 bps Hayes compatible modem,
either internal or external, and without any hardware MNP. This chapter
tells you what you should do if your equipment differs from this standard
in some way. You should avoid making changes to the default setup until you
are absolutely sure that you need to, and that you know what all the
settings do.
If you type ALT-S from the main terminal screen you will enter the Odyssey
"Setup" menu. From there it is possible to access sub menus which control
how Odyssey handles the serial port, display, file transfer, and so forth.
IF YOU HAVE A NON-STANDARD SERIAL PORT.
If you want to use Odyssey with a multi-port serial I/O card, and the port
you want to use is not mapped as COM1 or COM2, then you need to enter the
setup/comms submenu, by selecting "Comms Setup" from the Setup menu. From
there you select "Advanced Setup", and you will then be presented with a
table of base addresses and interrupt levels for the eight comm ports which
Odyssey can use (unused comm ports are set to zero). From there you can
move from field to field using the arrow keys, and when you reach a field
you want to change you simply overtype its contents. The left column of
numbers are the base addresses for each of the serial chips, and the right
column are the interrupt levels (normally 4 or 3). The following table
shows the default Odyssey settings:-
Port Base Address Int. Level
1 03F8 4
2 02F8 3
3 03E8 4
4 02E8 3
5 0000 0
6 0000 0
7 0000 0
8 0000 0
The first two rows define the two standard comms ports recognised by the
industry for IBM PC compatibles. The third and fourth rows define the
addresses most often used for two extra serial ports, however it cannot be
claimed that this "standard" is widely recognised. You will need to check
the manual for yourmulti-port board to determine the correct addresses for
the serial ports.
Notice that you have the complete freedom to change these fields as much as
you like. You could for example swap the first and second rows, and Odyssey
would then treat COM1 as COM2 and vice versa (not recommended). This merely
highlights the fact that as far as Odyssey is concerned, the port numbers
mean precisely what you say they mean, and nothing more.
Hit <Esc> twice when you have finished with this table, and you will be
back at the Setup menu. Type 'S' to save your changes to disk.
CHANGING THE DEFAULT FLOW CONTROL METHOD.
You may want to enable hardware flow control. There are several possible
reasons why this might be needed, for example:-
o If you have a speed buffered V23 modem (Odyssey cannot use a V23
modem unless it is speed buffered).
o If you have a multispeed modem, also with speed buffering, and you
wish to use all modem supported connect speeds without varying the
actual data rate between the modem and the PC.
o If you have a modem with internal error correction and data
compression, such as an MNP5, MNP7 or V.42bis modem.
In each of the cases mentioned above, flow control is required because you
will sometimes be sending characters to your modem faster than it can
transmit them, so the modem needs some way of telling you to stop sending.
To change the flow control setting, select "Comms Setup" from the setup
menu, then type 'F'. The flow control option will change from "NONE" to
"XON/XOFF". Type 'F' again and the option will change to "RTS/CTS". This is
the hardware flow control setting.
Type <Esc> to leave the setup/comms submenu and 'S' to save your changes.
**NOTE**: You may also need to configure your modem for RTS/CTS flow
control, although most modems come configured that way by default. You
should check your modem manual if you are not sure. If you find that after
configuring Odyssey for RTS/CTS flow control you can no longer communicate
with your modem then it is likely that it is not configured for hardware
flow control. This means that you will have to set Odyssey's flow control
option back to "NONE" while you reconfigure your modem, then perform the
above steps again.
MODEM CONTROL
For most users, this part of the configuration process is only necessary if
your modem is not Hayes compatible. Some users however may want to check
the "Init string" and "Dialler init string" options. Most users should not
have to change any of these settings.
If your modem is not controlled by "AT" commands, then it is not Hayes
compatible. This is unfortunate, since it means that you need to make quite
complicated changes to Odyssey's modem control strings, which of necessity
requires that you have a good grasp of the requirements of your modem. A
careful read of your modem manual is called for.
Odyssey mainly uses its knowledge of modem control when dialing. It needs
to know how to get the modem ready to dial, how to send a dial command, and
how to recognise whether the dial command succeeded or failed (i.e. whether
or not a connection was established).
To change Odyssey's modem control strings you need to select "Modem
Control" from the setup menu. From top to bottom, the options in this
submenu are as follows (only those required to get you started are
described):-
Dial Prefix.
This is the string which Odyssey sends to the modem when it wants to
dial a number. The prefix would normally be followed by the number
to dial, and a possible suffix. On Hayes modems this prefix is
"ATDT" or "ATDP" depending on whether you have tone or pulse
dialing. You need to find the equivalent string in your modem manual.
Dial Suffix.
This is the string Odyssey uses to complete a modem dial command. On
Hayes modems this is simply a carriage return, symbolised by the
character '|' in Odyssey.
Connect String.
This is the string which the modem sends back to the terminal when
it has successfully established a connection to a remote computer.
On Hayes modems the connect string is a simple "CONNECT" (in actual
fact, Hayes compatible modems faster than 300 bps send back "CONNECT
xxxx", where xxxx is the connect speed, however you should NOT
specify this as the connect string in Odyssey, otherwise Odyssey
would not recognise other forms of the string, e.g. if you specified
"CONNECT 2400", then Odyssey would never be able to establish a 1200
bps link). Again, you need to find an equivalent connect string in
your modem manual.
Failure Strings.
Odyssey allows up to six of these, and they contain the messages the
modem sends when a dial attempt fails, perhaps because the number
was engaged, or because it was a wrong number.
Hangup Command.
This is the command Odyssey uses to hang up the line if some part of
the dial attempt was not successful (the MNP negotiation for
example). If you leave this string blank then Odyssey will hang up
by dropping DTR for half a second, which should work with most
modems, whether Hayes compatible or not (if this does NOT work then
you will have trouble with some Odyssey features, such as the ALT-H
command).
Init String.
This is the only modem control string that is used outside the
Odyssey dialler. If your modem needs to be reconfigured on startup
for various options, or it does not reliably save its own
configuration in non-volatile RAM between sessions, then you need to
enter the initialisation string here. Odyssey sends this string to
the modem every time it starts up.
Dialler Init String.
Odyssey sends this string to the modem before every dial attempt. If
your modem needs some command prior to dialing (perhaps to reset the
modem back to a default speed), then you put that string here. If
your modem does not require such a command, then you MUST still
enter something here. The actual command does not matter, provided
that it produces some response from the modem. Anything harmless
will do. Odyssey does not care what the response is, it simply uses
this as a test that a modem is actually connected and ready before
it wastes time trying to dial.
Connect Timeout.
When Odyssey issues a dial command to the modem, it starts a timer,
and waits for a reply. If the timer expires without a reply having
been received then Odyssey assumes that the dial command has failed,
and sends a string to the modem to cancel the attempt (the hangup
command). The connect timeout is the time in seconds that Odyssey
allows for the response. The default is 45 seconds, which is enough
for most circumstances, but longer may be necessary if you are
making an international call, or you may want to make it shorter if
you have tone dialing, and find that Odyssey is waiting an
excessively long time to report failure when the dial attempt has
been unsuccessful.
Number of Redials
The number of times Odyssey should attempt to dial any number.
Pause between Dials
When redialing, or stepping through a dial queue, Odyssey will wait
this number of seconds between dial attempts.
DISPLAY SETUP
The only change that a new user might want to make to the display setup is
the "Snow Check" option. If you find that you get interference on the
display when Odyssey displays a window, then you might want to set this
option to "ON". Enabling snow checking will stop the interference, but has
a bad effect on the speed with which Odyssey can update the display. You
should therefore not enable this option unless it is really required.
GENERAL SETUP
You may want to change the "Directory for downloads" option to a directory
of your choice. Note that if you name a directory using this menu option
that the directory MUST exist already. Odyssey will not create it for you.
EDITOR SETUP
You may want to reduce the editor buffer sizes using this sub-menu, if you
find that you are very short of memory (this often happens to users who are
especially fond of large TSR utilities).
SAVING YOUR CHANGES.
The above paragraphs described all of the configuration changes which might
be necessary to get a new user off the ground, and ready to dial a number.
Most users will not have had to change anything. If you did, then now is
the time to save those changes. To do this simply pop up the Setup menu and
type 'S'.
MODEM CONFIGURATION
Your modem configuration may need to be changed before it can be used
successfully by Odyssey. This section lists some points to look out for.
DCD Signals.
Your modem must not be configured such that it holds the DCD signal
permanently high. You can check this by running Odyssey and looking
at the status line. If the status line shows the symbol "DCD", even
when you are not connected to a remote computer, then your modem
has DCD tied high, and this will need to be fixed by sending the
appropriate command to your modem, or making a change to the modem
switches (if your modem has switches). The modem manual will have
details. If you cannot fix this problem then you will not be able
to use Odyssey's software MNP, or host mode.
DTR Signal.
Your modem must not be configured to ignore the DTR signal from the
PC. If you find that the ALT-H command in Odyssey does not drop the
line, then your modem is probably configured to ignore DTR. Check
your modem manual for the command or switch setting to fix this
problem.
Flow Control (Handshaking).
Some modems have a software flow control option. If your modem is
configured for XON/XOFF or ENQ/ACK flow control then you should
disable this option, and set it to use hardware
<$IRTS/CTS>(RTS/CTS) flow control instead. If you do not do this
then Odyssey will be unable to transmit the characters used for
flow control to a remote computer. This could prevent software MNP
or file transfer from working correctly.
HARDWARE (MODEM) VS SOFTWARE (ODYSSEY) ERROR CORRECTION.
If your modem supports MNP or some other error correction protocol then you
will need to decide whether you wish to use Odyssey's MNP, or the modem's
own error correction. Generally, if the modem supports a lower MNP class
than Odyssey (i.e. lower than class 5), then you will want to disable the
modem's own error correction. This is needed because Odyssey's MNP cannot
work if the modem is intercepting the MNP protocol information before
Odyssey can see it.
If your modem supports MNP5 or better, then you will want to use the
modem's own MNP instead of Odyssey's, since the modem can use the MNP
synchronous mode option which is beyond the capability of the IBM PC serial
chip, and will therefore provide better performance. In this case you
should make sure that Odyssey is not configured for software MNP in the
Setup/Comms menu, or in any of the dialing directory entries.
**NOTE**: If your modem has hardware MNP5 (or better) then you should
remember to at least double the speed at which Odyssey communicates with
the modem. For example, if your modem is a V22bis (2400 bps) modem with
MNP5 then you should set the Odyssey baud rate to 4800 or 9600 bps,
otherwise the PC-modem link would be a bottleneck, nullifying the
performance improvements of the MNP data compression. You should NOT do
this if you are using Odyssey's software MNP.
COMMAND ECHO, AND OTHER MODEM SETTINGS.
The modem should be configured so that it echoes commands from the
terminal, and so that it produces verbal result codes. For a Hayes
compatible, the appropriate command is "AT E1 V1" <Enter>.
If your modem saves its settings in RAM between sessions, you may have to
enter a command to make any changes permanent. On some Hayes compatible
modems the correct command is "AT &W" <Enter>.
If your modem does not save settings in non-volatile RAM, and the settings
you need are not the default settings, then you may need to place the above
commands in the Modem Init String, which you can define using the
Setup/Modem submenu. For the above example, the correct Init String would
be "ATE1V1~|"
THE CABLE
This section naturally applies only to those users who need a cable, i.e.
those using external modems.
The correct pinout of cables to be used with external modems, or with
direct PC-to-PC connections is described in Appendix A. You should be
extremely wary of using cables which have previously been used for some
other task, perhaps for connecting your PC to a printer. These cables
typically have all sorts of wiring patches made to them to stop the PC
falling over because one or other pin was not held high. Modem
communications requires many more signals from the RS232 interface than
does a serial printer, so you should make sure that the cable you use
correctly makes these signals available to the PC. You are advised to get a
cable made up according to the appropriate diagram in Appendix A.
For those with PC/XT or PS/2 type serial ports (i.e. with standard 25 pin
connectors) this is extremely easy, since the cable you require is simply a
flat ribbon cable with a snap on connector at each end. These cables are
cheap and easy to make up in a matter of minutes, your dealer may be able
to help you find someone who can make one.
CHECKING OUT THE INSTALLATION
Once you have completed installation and configuration, it is time to check
that basic communication with the modem is working properly. To do this you
send a simple command to the modem. If your modem is a Hayes compatible,
then the following is an adequate test.
Make sure that your keyboard has CAPS LOCK set. Then type "AT" and press
<Enter> (do not type the quotes). The modem should respond with "OK". If
you do not get this response then check:-
o That the modem is connected and powered.
o That Odyssey is configured for the correct port number and
baud rate.
If you do get the "OK" response, then your system is ready for use.
MAKING A FIRST CALL
The first thing you need to do to make a call using Odyssey is decide which
service you want to dial. You need to know what telephone number to use,
what baud rate and parity setting the system expects, and whether it
supports error correction. This information is often published along with
the telephone number in popular computing magazines. If there is no mention
of MNP or V42 in the published data then the service may not support error
correction.
Once you have the information you need, press ALT-N to display the Odyssey
dialing directory. Press ALT-I to create a blank line at the first entry.
Now press the "F2" key to edit the new entry.
Now, from top to bottom, fill in all the fields in the dialling directory
entry. The first entry is the key, which you may leave blank - press
<Enter> to step to the next field. The second field is the service name,
and can contain anything you like - type something and press <Enter> to
complete the change. The next field is the telephone number, which you
should enter in format similar to those you see in other entries. The next
field is the baud rate - you change this by pressing the space bar, which
causes a menu of available baud rates to appear - simply highlight which
baud rate you need and press <Enter>. Next is the parity setting - cycle
through the allowed settings with the space bar, until you get to the
setting you want. Next is the required terminal emulation - hit <Enter> to
skip this if TTY is acceptable, otherwise press the space bar for a menu of
available terminals. Press <Enter> to skip the "Log File", "Script Name"
and "Keyboard file" fields. Next is the Error Correction field; if the
system you will call supports error correction then press the space bar to
enable it. Don't bother with the remaining fields; just press <Esc> now to
tell the dialling directory editor that you are finished. You will be asked
"Save changes? (Y/N): ", to which you should answer yes (press 'Y'). The
box containing the entry details will disappear, and you will see that the
dialling directory has been updated with the details of your new entry.
Don't worry if you make a typing error while you are changing a field. You
can always go back to a previous field using the arrow keys.
Now that you have created your new dialling directory entry, just press the
<Enter> key. Odyssey will dial the number you just entered, and provided a
modem answers, you will soon after be online for the first time. Follow the
instructions given by the system when you wish to disconnect.
===========================================================================
===========================================================================
INTRODUCTION TO THE SCRIPT LANGUAGE
-----------------------------------
If you like messing about with script languages in comms packages then you
are in luck! Odyssey has one of the most powerful programming languages you
will see in any product not aimed exclusively at programmers.
WHAT IS THE SCRIPT LANGUAGE FOR?
As a PC user, you are probably familiar with the concept of "batch" files.
These are text files, all with a .BAT extension so that DOS will recognise
them, and all containing a simple sort of program which the DOS command
interpreter can understand. DOS batch files consist mainly of ordinary DOS
commands, although batch files can also use programming features such as
IF, GOTO and REM statements. The purpose of the batch file is to make it
easier for you to perform any repetitive task. Instead of entering
individual commands to change directories, load a mouse driver, run a word
processor, and change back to the root directory when you exit, you can
replace all of the above with a single command which executes a batch file
containing those instructions.
A comms package needs a script language for similar reasons. Many of the
things you do inside a comms package are repetitive tasks which you perform
(at least) daily. For example, you may log on to your friendly local BBS to
check if any electronic mail has arrived. If any has, then you might want
to open a log file, capture the new messages, log off, and read the
messages offline. If you use the same service often enough, then it will
almost certainly be worthwhile for you to prepare a script to automate the
procedure.
Using a script has at least these four advantages:-
o Your hands are free for other work while the comms package
gets on with its daily chore.
o Once a script is prepared it can be used by anyone, including
those who have no knowledge of how to perform the task manually.
o Time wasting typing mistakes are eliminated.
o The script responds to prompts and types messages much faster
than a human possibly could. So online time is minimised, saving
money.
However, there is one fly in the ointment, which is that a script can be
badly affected by line noise. For example, if a script is waiting for a
particular prompt, and that prompt is corrupted by spurious characters,
then depending on how carefully the script was written it could end up
waiting all day for a prompt that has already passed by.
This is where error correction comes into its own. Whether you use MNP (or
other error control standard) provided in your modem, or Odyssey's software
MNP, the important feature in common is that it is no longer possible for a
prompt to be corrupted by line noise, and so a breakdown such as the one
described above can never occur. Of course, this requires that the host BBS
supports MNP, but these days that is more and more likely to be the case.
MNP cannot prevent a carrier loss, another potential cause of script
failure, however that eventuality is usually much easier to cope with than
the problem of noise. Error correction has turned a script language from an
arguable white elephant into an essential feature of modern communications
packages.
So, you are now sold on the merits of a script language, however the nature
of the script language which should be provided in a comms package is a
matter for debate. Should we, the implementor of the package, go for power
or simplicity in the script language? On the one hand a limited script
language is usually easier for a beginner to learn, on the other hand our
beginner will not be that forever, and sooner or later will smack into the
brick wall, which is a limited script language.
In Odyssey, we decided to go for power, but in such a way that beginners
can largely ignore the wide range of features until the day comes when they
are needed. A learn mode is provided which is capable of creating scripts
automatically, requiring negligible understanding of the underlying
language. From there you can progress to simple, manually created scripts
using a basic set of four script commands, and finally, when you are
feeling confident, you have the option to learn the complete script
language.
For programmers: Odyssey script closely resembles a conventional
programming language, especially structured languages like Pascal, Modula-2
or C. If you have a familiarity with any of these, or with any other common
language then you should find that you are able to quickly progress to the
expert level.
A NOTE ABOUT SCRIPT EXECUTION.
In some packages, running a script takes over the comms package completely,
blocking out everything the user does at the keyboard, except for the
"cancel script" key, which is usually an <Esc>. In Odyssey, the script
executes in "parallel" with the user, and so you are free to type Odyssey
commands while a script is running, and to "help a script along" if a
mistake in the script or a burst of line noise causes it to get stuck at a
prompt. However, this is not true "background" operation, since entering
any major Odyssey subsystem (e.g. the menus, or the editor), will cause the
script to pause until you return to terminal mode.
USING LEARN MODE TO CREATE SCRIPTS.
Learn mode provides the easiest way for a beginner to create an Odyssey
script. Typically this facility will be used to create logon scripts for a
variety of host BBS services. All you need to know when creating such a
script using learn mode is how to log on to that service manually. You
teach Odyssey how to do it once, and thereafter Odyssey will be able to do
the job for you.
The first step in using Learn mode to create a logon script is to create a
dialing directory entry for the new service - see the chapter on "Using
Odyssey" for a description of how to add entries to the dialing directory.
When you create the dialing directory entry, you must put something in the
"key" column. This key can be anything you like, up to seven characters
long, but it should be unique to that entry (i.e. until you are more
experienced, you should make sure that the new key is not the same as that
of any other entry). The purpose of the key is twofold: first it allows a
script created by learn mode to identify the correct directory entry to
use, secondly it allows a script to be attached to that entry so that the
script is automatically started when you select the entry for dialing. A
script is "attached" to a dialing directory entry when the script has the
same name as the directory entry key.
For the sake of the following example, let us suppose that you want to
create a script for dialing a BBS host called "MICROP". First, you create
the dialing directory entry, making sure that you have the right settings
for baud rate, parity, MNP and so forth. In the key field of the new line
enter the word "MICROP" (without the quote marks). Having completed the
directory entry, including the key, you then press <Esc> to return to the
Odyssey terminal screen. Remember not to press <Esc> before you have
completed all the fields in an entry, otherwise the <Esc> key will be
interpreted as an instruction to abandon the changes you have made. The
entry has been completed when the coloured bar returns to highlighting the
entire line.
From the terminal mode, press ALT-G to display the General menu, then type
'L' to select the "Learn a Script" option. Odyssey will ask you for a name
to give to the learned script, in this example you should give the name
"MICROP" (without the quotes). The name given must match the directory
entry key you entered earlier, so if you used a different key name, you
should also use that alternative at the script name prompt. When you have
typed in the script name you should press <Enter> to start learn mode.
Learn mode is now active. From now on, everything you do will be noted by
Odyssey, and duplicated in the new script, so you should avoid doing
anything which is unrelated to the task of logging on to the service.
Press ALT-N to bring up the dialing directory again, moving the highlight
bar to the entry you created earlier (this should still be highlighted if
you exactly followed the instructions given above), then press <Enter> to
dial the number, and wait until you get a connection.
On most host systems, the next thing you will see is the BBS logo, followed
by a prompt for your user name (the name the BBS knows you by). You should
enter that now. The BBS will then prompt you for a password, and again you
should respond. You are now logged on to the BBS.
Odyssey now knows everything it needs to know in order to log on to that
service, so assuming that is as far as you want to take it, you should now
leave Learn mode by pressing <Esc>. Odyssey will convert what it has
learned into a script file and write it to disk. If you have been following
this example then the file created will be called "MICROP.SCR" (all Odyssey
scripts have the .SCR extension, in the same way that DOS batch files
always have a .BAT extension).
Learn mode is now terminated. Odyssey is no longer remembering what you do.
You can if you wish stay on the BBS to continue this session, or you may
log off in order to test the newly created script.
The next time you want to call that service simply run Odyssey, press ALT-N
to call up the dialing directory, select the correct entry using the
highlight bar, and press <Enter> to dial. Odyssey will automatically run
the learned script, which will not only dial the number for you, but also
enter your user name and password details, just as you did the first time,
leaving you logged on to the BBS and ready to read messages or transfer
files.
There are other ways of running scripts in Odyssey, a subject which is
discussed later in this chapter (see the section "How to Run a Script").
WARNING: If, during the learn procedure, something goes wrong with the
login process, for example if you get an engaged tone, then you should
abort learn mode by pressing the <Esc> key, then later you should start
again from scratch. Whatever you do, you should NOT attempt to redial the
number without first stopping and restarting learn mode - if you ignore
this warning you will have dialled the number twice, and so will the
Odyssey script when you run it!
LIMITATIONS OF LEARN MODE
For most systems, Odyssey learn mode will do a perfectly good job of
automatically creating a login script for you. However, some systems may
cause it problems if the timing of responses is very critical.
Strict timing problems occur when there is a minimum delay which must occur
between a prompt and a corresponding reply. Odyssey is not able to
differentiate between the delay of a slow typist, and a delay introduced
deliberately by the typist because he or she knows that the system will not
react correctly if the response comes too quickly. The British Telecom PSS
service is an example of a system in which you must wait a second or two
after a connection is established before you can start the <CR>A2<CR> login
process. If the delay inserted by Odyssey is too short then you may have to
increase it, by editing the script. For that you can use the built in
Odyssey editor, or else use any preferred external editor, provided that it
is capable of producing a clean ASCII text file. Look for the "Delay(xx)"
commands inserted by learn mode, and increase the number shown between the
brackets (which is a delay in seconds). Remember to save your changes - if
you use the Odyssey editor then the save key is F2.
CREATING YOUR FIRST SCRIPT BY HAND.
For the slightly more adventurous, this section describes how to create
scripts manually, using a minimal understanding of the script language, but
providing a little more flexibility than is possible with learn mode.
Reading this chapter will also allow you to better understand scripts
created by learn mode, should you need to modify one.
A script is created with a text editor; probably the most convenient editor
would be the one built into Odyssey (accessed with ALT-E), however you are
free to use any external text editor provided that it produces clean ASCII
text files. Use of the Odyssey editor is not described here; if you are not
familiar with it then you should perhaps read the chapter on the editor
first, before delving into the script language. A script file must have an
extension of .SCR before it will be recognised by Odyssey, and furthermore
it must have the same name as a dialing directory entry key if the script
is to be invoked automatically when that directory entry is selected. You
are not required to attach scripts in this way, since scripts can also be
invoked from the Call menu, or from the DOS command line when running
Odyssey. Remember to put the script file in the "Odyssey Files" directory,
so that Odyssey can find it. This directory is named in the Setup/General
menu, or if not named then the current DOS working directory is assumed.
The Odyssey script language currently provides more than 100 built in
commands, yet it is quite possible to write useful Odyssey scripts using
only four of them. However, first you must learn rule number one, which is
that all Odyssey scripts start from the following minimum outline:-
SCRIPT myscript;
BEGIN
END;
This "skeleton" is what Odyssey expects from any script, and its purpose is
to allow Odyssey to easily confirm that this file it is trying to use is
indeed a script, and helps it to more easily find where a sequence of
commands begin and end. The "myscript" name need not be literally as shown,
in fact it can be almost anything you like (its purpose is to give the
script a meaningful name which will be understood by a person reading a
printed listing). However, you should perhaps leave it as shown until you
become familiar with the rules surrounding the naming of things in the
Odyssey script language. Note the semicolons after the "myscript" and after
the "END" are required. The words "SCRIPT", "BEGIN" and "END" are shown in
upper case for clarity only. You can enter them in lower case if you prefer.
Once you have created the basic script skeleton as shown above, you may
then enter commands between the BEGIN and END lines. The basic four
commands you may use are DIAL, WAITFOR, TRANSMIT and DELAY. These commands
are described below.
DIAL()
The Dial command is used to dial a number, taking the necessary details
from a dialing directory entry. In order to use the dial command you must
pass it the name of a directory entry key, and that key must match an
existing directory entry, otherwise the dial command will not be able to
proceed. Here is an example of the dial command:-
Dial("MICROP");
Note that the key name is surrounded both by double quotes and round
brackets, and that the command is followed by a semicolon. This may seem
like excessive punctuation, but once you get around to learning the
complete language you will find out why they are required. For the moment
simply follow the rules.
In the above example, the script would look up a dialing directory entry
with a key of "MICROP", and would dial that number. The script will resume
from the statement following the Dial command once a connection has been
established.
WAITFOR()
WaitFor is a basic command which you will use a lot, however expert you
become. This command tells the script to wait until a particular sequence
of characters (called a "string") arrives from the host. Here is an example
of the waitfor command:-
WaitFor("User name?");
Note again the use of double quotes, round brackets and the terminating
semicolon. In this example the script will wait until the string "User
name?" arrives from the host.
You can also, optionally, add a timeout to the WaitFor command. This would
mean that instead of the WaitFor command waiting forever for the string to
arrive, it can terminate either when the string arrives, or when the
timeout period has elapsed. This is an example of the WaitFor command
making use of a timeout:-
WaitFor("User name?",10);
In the above example the WaitFor will terminate when the string "User
name?" arrives from the modem, or when a ten second period has passed.
TRANSMIT()
The Transmit() command tells the script to transmit a string via the serial
port. Here is an example of the transmit command:-
Transmit("John Smith|");
In this example the script would transmit the characters inside the double
quotes to the modem, and hence to the host BBS. Note the '|' character
which forms part of this string. This is treated as a special character by
the transmit command, in that it is not transmitted literally, but instead
tells the transmit command to send the code for newline (usually the
carriage return character). This is required because if you were typing
this manually, in most cases the host would require you to press <Enter> to
complete the answer to the prompt.
DELAY()
This is the last of the four basic commands. The purpose of this command is
to insert a delay into the script, usually to avoid sending messages to the
host BBS before it is ready to receive them. This command is given a number
which is the delay you require, in seconds. Here is an example of the delay
command:-
Delay(2);
In the above example, the script would pause for two seconds, and would
then continue with the next command.
PUTTING IT ALL TOGETHER.
Now that you know what the basic commands are, we can proceed to put them
together in the form of a script to log on to an imaginary BBS.
In the following example the script will dial a BBS which has an entry in
your dialing directory with a key of "MICROP". The script will then wait
for the username prompt from the BBS and enter a name of John Smith, then
it will wait for the password prompt, and answer it with "smithy". In both
cases it will follow the characters in the reply with a carriage return
code.
SCRIPT myscript;
BEGIN
Dial("MICROP");
WaitFor("User name? ");
Transmit("John Smith|");
WaitFor("Password? ");
Transmit("smithy|");
END;
Note the indentation of the lines containing the commands. This is not a
requirement of the script language, but in many people's opinion it does
make the script look nicer, as well as making it a little easier to follow.
This is a good habit to get into early, since readability becomes very
important once you begin to write larger scripts using the advanced script
features.
These four basic commands should enable you to write a login script for any
service. However, such a script does not deal with errors which might occur
(such as an engaged tone). If that happens then you should press the <Esc>
key to abort the script. The next section contains information on how to
have the script recognise errors itself, however you needn't read that now
unless you are feeling confident!
DEALING WITH ERRORS
Although the example script shown above will work perfectly in most cases,
it does have a problem, in that it makes no attempt at all to cater for
those occasions when things do NOT work perfectly. For example, suppose the
number dialled is engaged - the script shown does not check whether the
dial attempt succeeded, so succeed or fail, the script will go on to
execute the next statement. The next statement is a WaitFor, and that is
never going to succeed if the dial attempt failed, because Odyssey is at
that time not even connected to the host. We therefore need to put some
error protection into the script, which we can do using an IF statement.
An IF statement can be used to test whether a command succeeded. You cannot
test the success of all commands, because not all of them can fail.
However, among the commands you can test are DIAL and WAITFOR.
Here is the example script again, but this time we test the success of the
DIAL command using an IF statement. If the dial command is not successful
then the script stops:-
SCRIPT myscript;
BEGIN
Write("Calling the MICROP BBS Service.|");
IF Dial("MICROP") THEN
WaitFor("User name? ");
Transmit("John Smith|");
WaitFor("Password? ");
Transmit("smithy|");
END;
END;
Note the extra END which has appeared. The IF statement always has an END
associated with it in the same way that a BEGIN always has an END, and it
serves the same purpose, i.e. to "bracket" a sequence of commands. In the
above example the sequence of commands between the "IF" line and the first
"END" will only be executed if the dial attempt succeeds. You could if you
wished put other commands before the "IF" line, or following the first
"END" line, and these would not be dependent on the "IF" test. In other
words those commands would be executed whether or not the dial attempt
succeeds. This is how you control the execution of commands in the Odyssey
script language. The "Write" command is an example of such a command which
will always be executed when you run this script (the Write command has not
been previously discussed, it simply displays a message on the screen, but
does not transmit that message to the modem).
Finally, we would like to cope with the situation that occurs when you get
a connection with a modem, but the remote computer does not respond. To
handle this, you can again use an IF statement, this time using it to test
the success of a WaitFor command. Since we now want the WaitFor to give up
after a certain period, we will specify a timeout this time - ten seconds
in the following example:-
SCRIPT myscript;
BEGIN
Write("Calling the MICROP BBS Service.|");
IF Dial("MICROP") THEN
IF WaitFor("User name? ",10) THEN
Transmit("John Smith|");
WaitFor("Password? ");
Transmit("smithy|");
END;
END;
END;
SEMICOLONS
We should perhaps return to the question of the placement of semicolons. In
the first script example there was a semicolon following the first use of
WaitFor, yet there was no semicolon after the first WaitFor in the most
recent example shown. Also, there is no semicolon on either of the two "IF"
lines. If you study the above script you may be able to spot the common
factor for yourself, which is that a semicolon tells the script processor
where a complete statement ends. Let us take the last script from top to
bottom - "SCRIPT myscript" is a complete statement, so it is followed by a
semicolon. "BEGIN" is not a complete statement, since it must have a
matching end, so it is NOT followed by a semicolon. The "Write" line is a
complete statement, so there is a semicolon. The first "IF" line is NOT a
complete statement, since like the "BEGIN", it must have a matching "END" -
and so on down the list. In the case of the first "WaitFor", it is not a
complete statement, since it forms part of an "IF condition THEN" sequence,
whereas an unconditional "WaitFor" is a complete statement, and so is
followed by a semicolon.
The semicolon in the Odyssey script language serves more or less the same
purpose as the full stop which terminates a written sentence in the English
language. The only real difference is that the script language grammar
allows any "sentence" to be constructed from any number of smaller
sub-sentences, each of which is also terminated with a semicolon.
Take all the time you need to understand this section of the manual. If all
was not clear the first time you read it then you are encouraged to read it
again. When you have read and understood the above discussion you will know
everything you need to know in order to manually create your own login
scripts for any BBS, and have them cope with almost any eventuality.
HOW TO RUN A SCRIPT.
From the Call menu.
You can run a script from the Call menu. Press ALT-C from Odyssey terminal
mode and the Call menu will be displayed. This menu contains the names of
each of the scripts which Odyssey finds in its "Odyssey files" directory
(named in Setup/General), or if not named, in the current DOS working
directory. If there are more scripts available than can be displayed in a
single menu (eight), then other script names can be seen by paging up and
down the list using the PgUp and PgDn keys. To execute any script from the
Call menu simply type the number shown alongside the menu option.
From the Files menu.
A script can also be executed from the Files menu. Press ALT-F from Odyssey
terminal mode to display the menu, then select the "Execute Script" option.
This menu option allows you to access scripts which are not stored in the
"Odyssey files" directory, you must therefore supply a complete path, for
example "c:\otherdir\myscript".
From the Dialling Directory.
When you press <Enter> on a dialing directory entry in order to dial a BBS,
Odyssey will check for an "attached" script, and will load and run one
automatically, if it finds that an attached script exists. Odyssey
considers a script to be attached to a dialing directory entry when the
name of the script matches the key field of that dialing directory entry.
For example, if the key for the chosen entry is "MICROP", and a script file
exists called "MICROP.SCR", then Odyssey will load and run "MICROP.SCR"
instead of dialing the number. What happens from that moment is entirely up
to the script, but in most cases it will at some point make a call to the
script "DIAL" command, thus allowing the dialing procedure to continue.
From another Script.
A script has the facility to chain to any other script. It does this by
making use of the script "CHAIN" command. The script which used the chain
command is halted, and the chained script (if found) is executed. Odyssey
has no facility to "call" another script, i.e. with control returning to
the original script, however one possible approach if you need to do that
would be to explicitly chain back to the parent script from the child.
From the DOS Command Line or Batch File.
You can execute Odyssey scripts directly from the DOS command line, or from
a DOS batch file, by supplying the name of the script as a command line
argument to Odyssey. For example the DOS command:-
C:\ODYSSEY> ody microp
would tell Odyssey to execute the script "MICROP.SCR" immediately after
loading. Odyssey does not display its normal welcome banner when a script
is named on the command line.
Stopping a Script
Pressing the <Esc> key while a script is running will cancel the script,
unless the script has used a special CanEscape(FALSE) command to disable
this feature. If you want to type and transmit an ESC character while a
script is running, without aborting the script, then a keyboard command has
been provided for that purpose - try ALT-F2.
SCRIPT COMMANDS
The above should be enough to get you started with simple scripts. The
manual for the full Odyssey package does of course cover the script
language syntax in much greater detail, as well as providing full
descriptions of each of the built in commands, with an example for each
one. This summarised guide however will simply list the commands which are
available:-
MODEM AND SERIAL I/O COMMANDS.
PROC AutoAnswer(On:Flag);
PROC Break(tenths:Number);
PROC HangUp();
PROC ModemInit();
FUNC MNPAnswer():Flag;
FUNC MNPClass():Number;
FUNC MNPConnect():Flag;
FUNC OnLine():Flag;
PROC Paste(s:String);
PROC PortInit(Baud,Databits,Parity,Stopbits:Number);
PROC Receive(VAR s:String; timeout:Number [; NoEcho]);
PROC SetPort(PortNo:Number);
PROC Sleep();
PROC Transmit(s:String);
DISPLAY AND KEYBOARD COMMANDS.
PROC Alarm(Seconds:Number);
PROC BackGnd(Colour:Number);
PROC ClrEol();
PROC ClrEos();
PROC ClrLine();
PROC ClrScr();
FUNC ColourDisplay():Flag;
PROC DelLine();
PROC DisableCursor();
PROC EnableCursor();
PROC ForeGnd(Colour:Number);
PROC GotoXY(x,y:Number);
PROC InsLine();
FUNC KeyPressed():Flag;
PROC KillWindow();
FUNC LoadKeyDef(kdf_name:String):Flag;
FUNC Menu(x,y,width:Number; Title:String;<N> {option:String;}
Menu_Flags:Number):Number;
FUNC RdKey():Number;
PROC Read(VAR s:String [; NoEcho]);
PROC SetHelp(help_msg:String);
PROC UseWindow(win_handle:Number);
FUNC WhereX():Number;
FUNC WhereY():Number;
FUNC Window(x,y,width,height:Number; title:String;
colour:Number):Number;
PROC Write(item {,item} : String_or_Number);
FILE AND DIRECTORY COMMANDS.
PROC Chain(script_name:String);
FUNC ChDir(dir_name:String):Flag;
FUNC CopyFile(source_file,dest_file:String):Flag;
FUNC CurrentDir():String;
FUNC DiskSpace():Number;
FUNC Dos(cmd:String; WAIT or NOWAIT [+NOCLEAR] ):Number;
FUNC Download(protocol [,filename:String [,default-action] ] ):Flag;
PROC Edit(filename:String);
FUNC FAppend(VAR f:File; filename:String):Number;
FUNC FClose(VAR f:File):Number;
FUNC FCreate(VAR f:File; filename:String):Number;
FUNC FDelete(filename:String):Number;
FUNC FEOF(f:File):Flag;
FUNC FetchStr(Key:String; VAR s1,s2:String; [ filename:String ] ):Flag;
FUNC FFirst(wildcard:String; s_attr:Number;
VAR Filename:String; VAR f_attr:Number):Flag;
FUNC FNext(VAR Filename:String; VAR f_attr:Number):Flag;
FUNC FOpen(VAR f:File; filename:String):Number;
FUNC FQualify(filename:String):String;
FUNC FRead(f:File; VAR s:String):Number;
FUNC FRename(oldname,newname:String):Flag;
FUNC FWrite(f:File; s1 {,sn} :String_or_Number):Number;
FUNC IsFile(filespec:String):Flag;
FUNC LastTransferredFile():String;
FUNC MkDir(dir_name:string):Flag;
FUNC PickFile(wildcard:string; VAR filename:String):Flag;
PROC Shell();
FUNC Upload(protocol; filespec:String):Flag;
DIALLING COMMANDS
FUNC Dial(key:String):Flag;
FUNC DialQueued():Number;
FUNC DialTagged():Number;
FUNC TagDirEntries(Key:String; ClearOldTags:Flag):Number;
MODE CONTROL COMMANDS
PROC CanEscape(enable:Flag);
FUNC CRinTranslation(CR or CRLF):Number;
FUNC CrOutTranslation(CR or CRLF):Number;
FUNC Emulate(emulation:String):Flag;
FUNC EventLogging(enable:Flag):Flag;
FUNC LocalEcho(enable:Flag):Flag;
FUNC LogFile(Log_command; [ filename:string] ):Flag;
PROC PrinterOff();
PROC PrinterOn();
PROC RestoreDefaults();
PROC SetASCII(CharDelay,LineDelay:Number; BlankExpansion:Flag);
PROC SetAutoWrap(on:Flag);
PROC SetBackspace(Key:Number; Destructive:Flag);
PROC SetCISB(AutoInvoke,IntResponse,SAok,EscapeCtl:Flag);
PROC SetDialDelay(Secs:Number);
FUNC SetDiallingDir(Filename:String):Flag;
PROC SetDialPrefix(PrefixS:String);
PROC SetDialTimeout(Secs:Number);
PROC SetDownloadDir(dirname:String);
PROC SetRawLogging(on:Flag);
PROC SetMaxRedials(max:Number);
PROC SetScreenMode(MenuLine,StatusLine,BigScreen:Flag);
PROC SetSoundEffects(Windows,Bells,FTransfer:Flag);
PROC SetStripParity(on:Flag);
PROC SetZmodem(AutoDownload,FullStreaming,EscCtrls:Flag);
HOST MODE COMMANDS
PROC HostShell();
PROC GetHostInfo(VAR NormPass,PrivPass,Welcome,HostDir:String;
VAR MNPwanted:Flag);
PROC FileSize(f:File; VAR Bytes,Xblocks:String);
FUNC WaitForCall():Number;
WATCH AND WAIT COMMANDS.
PROC ClrAllWatches();
PROC ClrWatch(handle:Number);
FUNC GrabWhen(Target:String; VAR line:String):Number;
FUNC ReadScreen(x,y,len:Number):String;
FUNC Received(handle:Number):Flag;
FUNC WaitFor(target:String [; t_secs:Number ] ):Flag;
FUNC WaitForSilence(secs,max_wait_secs:Number):Flag;
PROC WatchAgain(handle:Number);
FUNC WatchEvent(handle1, {,handleN} : Number;
[ timeout:Number ] ):Number;
FUNC WatchFor(target:String):Number;
FUNC When(s1:String; s2:String):Number;
DLL COMMANDS.
FUNC LoadDLL(DLLname:String):Number;
FUNC SendMessage(dll_handle:Number;
Command:String;
VAR str_arg:String;
num_arg:Number):Number;
FUNC UnloadDLL(dll_handle:Number):Number;
MISCELLANEOUS COMMANDS
FUNC ASC(s:String; i:Number):Number;
FUNC CHR(n:Number):String;
FUNC Date():String;
PROC DEC(VAR n:Number [; amount:Number ] );
PROC Delay(secs:Number);
FUNC DTESpeed():Number;
PROC Exit();
FUNC GetCallInfo(VAR ServiceName:String;
VAR Connect_Speed:Number;
VAR Key:String):Flag;
PROC GetEnv(varname:String; VAR value:String):Flag;
PROC Halt();
PROC HaltE(return_code:Number);
PROC INC(VAR n:Number [; amount:Number ] );
PROC IntToStr(n:Number; VAR s:String);
FUNC IsDirKey(Key:String):Flag;
FUNC Length(s:String):Number;
PROC LogEvent(s:String);
FUNC OdyVersion():String;
FUNC Pos(substring,s:String):Number;
PROC Priority(enable:Flag);
PROC SetTimer(seconds:Number);
PROC SilentMode(enable:Flag);
FUNC StrEdit(VAR s:String [, NoEcho]):Flag;
PROC StrToInt(s:String; VAR n:Number);
FUNC SubStr(s:String; start,length:Number):String;
FUNC Time():String;
FUNC TimerExpired():Flag;
FUNC ToLower(s:String):String;
FUNC ToUpper(s:String):String;
-----------------------------------------------------------------------------
REGISTRATION
You can register, and receive the full version of Odyssey by sending £69.00
+ £4 carriage + VAT (total £85.78) to Shareware Publishing at the address
below. Shareware Publishing also accept credit card payments on (0297)
24088.
Registration of your Odyssey Package gets you (apart from salving your
guilty concience)! :-
o The LATEST version of the software, plus notice of updates.
o A comprehensive, professionally bound and typeset 400+ page manual.
o Free voice-line technical support.
o Online support in the UK on CIX and Compuserve.
o The Odyssey FAX module (supports EIA class I/II FAX modems).
o The Odyssey REMOTE CONTROL module (>5000 cps file transfers!).
o Other valuable utilities such as the script compiler, editor
configuration utility, plus script file examples for several popular
systems.
And more! Visit your local dealer or call SHAREWARE PUBLISHING on (0297)
24088 and get your registered copy of ODYSSEY sent to you today!
Shareware Publishing
The Shareware Village
Station Road
Colyton, Devon.
England.
Call: 0297-24088.